/**
 * TempMsgPriorityQueue.java<br>
 *
 * @author aaronwong.sd@foxmail.com
 * @version 上午11:22:37
 */
package com.iwechat.service;

import com.iwechat.mybatis.generator.model.TemplateMessage;

/**
 * 模板消息优先级队列接口
 *
 * @author aaronwong.sd@foxmail.com
 */
public interface TempMsgPriorityQueue {

    /**
     * 将一条模板消息加入优先级队列
     *
     * @param m
     * @return true : success; <br>
     *         false: fail
     */
    boolean offer(TemplateMessage m);

    /**
     * 获取一条模板消息并从队列移除,阻塞方法
     *
     * @return a message
     */
    TemplateMessage take();

    /**
     * 获取监控信息
     *
     * @return
     */
    String monitor();

    /**
     * 获取空闲空间大小
     *
     * @return
     */
    int getFreeSize();
    
    /**
     * 获取空闲空间大小
     *
     * @return
     */
    int getFreePercent();
}
